package com.zdxlz.fcmp.upms.api.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zdxlz.fcmp.common.mybatis.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 系统操作日志记录表(SystemOperLog)表实体类
 *
 * @author makejava
 * @since 2025-03-18 11:53:16
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("system_oper_log")
public class SystemOperLog extends BaseEntity {

    /**
     * 租户id
     */
    @TableField("tenant_id")
    private Integer tenantId;
    /**
    * 操作模块
    */
    @TableField("title")
    private String title;
    /**
    * 操作消息
    */
    @TableField("oper_msg")
    private String operMsg;
    /**
    * 操作类型（1：新增 2：修改 3：删除 4：查询 5：发布消息 6：订阅消息 7：导入 8：导出），枚举类：OperateTypeEnum
    */
    @TableField("oper_type")
    private Integer operType;
    /**
    * 操作主机IP
    */
    @TableField("oper_ip")
    private String operIp;
    /**
    * 操作地址（省市）
    */
    @TableField("oper_location")
    private String operLocation;
    /**
    * 请求地址
    */
    @TableField("req_url")
    private String reqUrl;
    /**
    * 请求方法全路径
    */
    @TableField("req_method")
    private String reqMethod;
    /**
    * 请求参数（json格式）
    */
    @TableField("req_param")
    private String reqParam;
    /**
    * 返回参数（json格式）
    */
    @TableField("resp_result")
    private String respResult;
    /**
    * 请求耗时, 单位秒
    */
    @TableField("req_consuming")
    private Integer reqConsuming;
    /**
    * 操作时间
    */
    @TableField("oper_time")
    private Date operTime;
    /**
    * 操作人员名称
    */
    @TableField("oper_name")
    private String operName;
    /**
    * 操作人员手机
    */
    @TableField("oper_mobile")
    private String operMobile;
    /**
    * 请求方式(1：GET; 2：POST; 3：PUT; 4：DELETE)，枚举类：RequestMethodEnum
    */
    @TableField("req_way")
    private Integer reqWay;
    /**
    * 客户端类型（1：电脑终端， 2：手机APP端， 3：手机小程序端），枚举类：ClientTypeEnum
    */
    @TableField("client_type")
    private Integer clientType;
}
